package fr.syntheses.blog.Model.DAO;

import fr.syntheses.blog.beans.Ficheutilisateur;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.apache.log4j.Logger;

public class FicheutilisateurDAO extends ModeleDAO
{
	Logger log = Logger.getLogger(FicheutilisateurDAO.class);
	Connection cnx = null;
	ResultSet resultat = null;
	String requeteString = null;
	PreparedStatement requete = null;

	public int addfiche(Ficheutilisateur ficheutilisateur)
	{
		this.log.fatal("Entering in  Ficheutilisateur addfiche(Ficheutilisateur ficheutilisateur) with ficheutilisateur : " + ficheutilisateur);

		PreparedStatement requete = null;
		String requeteString = null;
		int codeErreur = 0;
		try
		{
			this.cnx = super.getConnection();

			requeteString = "INSERT INTO ficheutilisateur (StyleId, paysid,avatarid, adresse, ville, codepostal, langue) VALUES (?,1,1,?,?,?,?)";

			requete = this.cnx.prepareStatement(requeteString);
			
            requete.setInt(1, ficheutilisateur.getStyle().getId());
			requete.setString(2, ficheutilisateur.getAdresse());
			requete.setString(3, ficheutilisateur.getVille());
			requete.setInt(4, ficheutilisateur.getCodepostal());
			requete.setString(5, ficheutilisateur.getLangue());

		
			codeErreur = requete.executeUpdate();

			System.out.println("codeErreur" + requete);
		}
		catch (Exception e)
		{
			codeErreur = 0;
			this.log.fatal("Erreur dans la requete dans la classe FicheutilisateurDAO fonction addfiche" + e);
			try
			{
				if (this.resultat != null)
				{
					GestionBaseDeDonnees.closeResulset(this.resultat);
				}
				if (requete != null)
				{
					GestionBaseDeDonnees.closeRequest(requete);
				}
				if (this.cnx != null)
				{
					GestionBaseDeDonnees.closeConnection(this.cnx);
				}
			}
			catch (Exception ex)
			{
				this.log.fatal("Erreur lors de la fermeture de la connexion avec la base de donn�es dans la classe FicheutilisateurDAO fonction addfiche");
			}
		}
		finally
		{
			try
			{
				if (this.resultat != null)
				{
					GestionBaseDeDonnees.closeResulset(this.resultat);
				}
				if (requete != null)
				{
					GestionBaseDeDonnees.closeRequest(requete);
				}
				if (this.cnx != null)
				{
					GestionBaseDeDonnees.closeConnection(this.cnx);
				}
			}
			catch (Exception ex)
			{
				this.log.fatal("Erreur lors de la fermeture de la connexion avec la base de donn�es dans la classe FicheutilisateurDAO fonction addfiche");
			}

		}

		return codeErreur;
	}

	public int lastIdFichDao()
	{
		this.log.debug("Entering in lastIFichDao()");

		int lastIdFichDao = 0;
		try
		{
			this.cnx = super.getConnection();

			this.requeteString = "SELECT MAX(id) FROM ficheutilisateur ;";

			this.requete = this.cnx.prepareStatement(this.requeteString);

			this.resultat = this.requete.executeQuery();

			if (this.resultat != null)
			{
				while (this.resultat.next())
				{
					lastIdFichDao = this.resultat.getInt(1);
				}

			}

		}
		catch (Exception e)
		{
			this.log.debug("Erreur dans la requete dans la classe lastIdFichDao " + e);
			try
			{
				if (this.resultat != null)
				{
					GestionBaseDeDonnees.closeResulset(this.resultat);
				}
				if (this.requete != null)
				{
					GestionBaseDeDonnees.closeRequest(this.requete);
				}
				if (this.cnx != null)
				{
					GestionBaseDeDonnees.closeConnection(this.cnx);
				}
			}
			catch (Exception ex)
			{
				this.log.debug("Erreur lors de la fermeture de la connexion avec la base de donn�es dans la classe utilisateur" + ex);
			}
		}
		finally
		{
			try
			{
				if (this.resultat != null)
				{
					GestionBaseDeDonnees.closeResulset(this.resultat);
				}
				if (this.requete != null)
				{
					GestionBaseDeDonnees.closeRequest(this.requete);
				}
				if (this.cnx != null)
				{
					GestionBaseDeDonnees.closeConnection(this.cnx);
				}
			}
			catch (Exception ex)
			{
				this.log.debug("Erreur lors de la fermeture de la connexion avec la base de donn�es dans la classe utilisateur" + ex);
			}

		}

		return lastIdFichDao;
	}

	public void create()
	{
	}

	public void read()
	{
	}

	public void update()
	{
	}

	public void delete()
	{
	}
}